package cn.iocoder.yudao.module.train.controller.admin.coursecancel.vo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 课程消课记录新增/修改 Request VO")
@Data
public class CourseCancelSaveReqVO {

    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29358")
    private Integer id;

    @Schema(description = "学生ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "12403")
    @NotNull(message = "学生ID不能为空")
    private Long studentId;

    @Schema(description = "课程商品ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19021")
    @NotNull(message = "课程商品ID不能为空")
    private Long commodityId;

    @Schema(description = "班级ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "22628")
    @NotNull(message = "班级ID不能为空")
    private Long classesId;

    @Schema(description = "消课时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "消课时间不能为空")
    private LocalDateTime cancelTime;

    @Schema(description = "消课时长", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "消课时长不能为空")
    private Integer teachingTime;

    @Schema(description = "剩余时长", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "剩余时长不能为空")
    private Integer restDuration;

    @Schema(description = "学生姓名")
    @JsonProperty("studentName")
    private String studentName;

    @Schema(description = "课程名称")
    @JsonProperty("courseName")
    private String courseName;

    @Schema(description = "课程商品名称")
    @JsonProperty("commodityName")
    private String commodityName;

    @Schema(description = "老师姓名")
    @JsonProperty("teacherName")
    private String teacherName;

    @Schema(description = "班级名称")
    @JsonProperty("classNumber")
    private String classNumber;

}
